// 导入request请求工具类
import {getBaseUrl,requestUtil} from '../../utils/requestUtil.js';
import regeneratorRuntime from '../../lib/runtime/runtime';
// pages/cart/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    baseUrl:'',
    address:{},
    cart:[],
    allChecked:false,
    totalPrice:0,
    totalNum:0
  },

    // 点击 获取收货地址
    handleChooseAddress(){
      wx.chooseAddress({
        success: (result) => {
          console.log(result);
          wx.setStorageSync('address', result)
        },
      })
    },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    const baseUrl=getBaseUrl();
    this.setData({
      baseUrl
    });

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    console.log("show")
    const address=wx.getStorageSync('address');
    const cart=wx.getStorageSync('cart')||[];
 
    this.setData({
      address
    })

    this.setCart(cart);
  },

   // 商品选中事件处理
   handleItemChange(e){
    const {id}=e.currentTarget.dataset;
    // 获取购物车数组
    let {cart}=this.data;
    let index=cart.findIndex(v=>v.id===id);
    console.log(index)
    cart[index].checked=!cart[index].checked;
    // 重新计算
    this.setCart(cart);
  },

  // 商品全选功能
  handleItemAllCheck(){
    // 获取data中的数据
    let {cart,allChecked}=this.data;
    // 修改值
    allChecked=!allChecked;
    // 循环修改cart数组中的商品修改状态
    cart.forEach(v=>v.checked=allChecked);
    // 修改后的值 填充回data以及缓存中
    this.setCart(cart);
  },

  // 设置购物车状态 同时 重新计算 底部工具栏 数据 全选 总价格  购物买书 以及重新设置缓存
  setCart(cart){
    let allChecked=true;
    let totalPrice=0;
    let totalNum=0;
    cart.forEach(v=>{
      if(v.checked){
        totalPrice+=v.num*v.price;
        totalNum+=v.num;
      }else{
        allChecked=false;
      }
    })
    allChecked=cart.length!=0?allChecked:false;
    this.setData({
      cart,
      allChecked,
      totalNum,
      totalPrice
    })
    // cart设置到缓存中
    wx.setStorageSync('cart', cart);
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})